package com.biz.primus.model.payment.vo.req;

import com.biz.primus.model.payment.enums.PaymentTradeType;
import com.biz.primus.model.payment.enums.PaymentType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.sql.Timestamp;

@Data
public class PaymentReqVo extends PaymentQueryReqVo {

    private static final long serialVersionUID = -4796462698474752590L;

    @ApiModelProperty(value = "卖家身份，可以为id或账号",hidden = true)
    private String seller;

    @ApiModelProperty("当前支付单的title。如:小张南山店-超市 特惠买单")
    private String subject;

    @ApiModelProperty("当前支付单的详情。如:忘情水 250ml x 1")
    private String body;

    @ApiModelProperty("当前支付单的支付类型")
    private PaymentType paymentType;

    @ApiModelProperty("当前支付单的交易类型")
    private PaymentTradeType tradeType = null;

    @ApiModelProperty("卡云支付使用，通联卡云支付卡号ID")
    private String cardId;

    @ApiModelProperty("支付密码，当直接调用第三方支付付款时传递")
    private String tradePassword;

    @ApiModelProperty("支付过期时间, 在创建支付单的时候传入。")
    @NotNull
    private Timestamp expireTime;

    @ApiModelProperty("订单金额，单位:分")
    @NotNull
    private Integer payAmount;

    @ApiModelProperty("货币类型，默认 人民币:CNY, 具体参看 https://baike.baidu.com/item/ISO%204217/11018231")
    private String currency = "CNY";

    @ApiModelProperty("客户端发起支付请求时的ip地址")
    private String clientIp;

    @ApiModelProperty("客户端发起支付请求时的设备")
    private String device;

    @ApiModelProperty("其它参数，做扩展使用，也可用于通知回调的时候传输")
    private String extra;

    @ApiModelProperty("JSP_API 正扫 H5使用，通知回调地址")
    private String notifyUrl;

    @ApiModelProperty("h5支付使用，前端支付成功跳转地址")
    private String pickUpUrl;

    @ApiModelProperty("JS支付时使用,微信支付-用户的微信openid,支付宝支付-用户user_id")
    private String acct;

    @ApiModelProperty("支付授权码\t如微信,支付宝,银联的付款二维码")
    private String authCode;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("失效时间(分)")
    private Integer validTime;
}